home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Logiciels PC 18
/
LOGICIELSPC_18.ISO
/
Accuses
/
MAJ
/
Rtf2Html
/
Source C
/
LIB
/
HTML.C
< prev
next >
Wrap
C/C++ Source or Header
|
1999-06-27
|
11KB
|
618 lines
/*
* %%File: html.c
*
* Copyright (c) 1995-1999 Bertrand LE QUELLEC
*
* http://perso.wanadoo.fr/blq
* blq@wanadoo.fr
*/
#include <stdio.h>
#include "lib.h"
#include "ansi_map.h"
#include "ansi_mac.h"
#include "html_map.h"
#define SOURCE_HTML 1
#include "html.h"
static char StringTmp[MLEN * 3];
/*
* %%Function: TitreHTML
*
* Envoie sur le file pointeur un titre HTML.
*/
void TitreHTML(char * titre, FILE * out)
{
FILE * sortie = (FILE *)0;
if(!(sortie = out))
#ifdef UNIX_SRC
sortie = stdout;
#else
return;
#endif
fprintf(sortie, "\n%s%s%s%s%s\n",
TAG_HEAD, TAG_TITLE, titre, TAGf_TITLE, TAGf_HEAD);
}
/*
* %%Function: EnteteHTML
*
* Envoie sur le file pointeur une entete HTML par defaut.
*/
void EnteteHTML(char * tag, FILE * out)
{
FILE * sortie = (FILE *)0;
if(!(sortie = out))
#ifdef UNIX_SRC
sortie = stdout;
#else
return;
#endif
fprintf(sortie, "\n%s\n%s\n%s%s\n",
TAG_DTD, TAG_HTML, TAG_BODY, tag);
}
/*
* %%Function: BgColorHTML
*/
void BgColorHTML(char * couleur, FILE * out)
{
FILE * sortie = (FILE *)0;
if(!(sortie = out))
#ifdef UNIX_SRC
sortie = stdout;
#else
return;
#endif
fprintf(sortie, "%s\"%s\"%s\n", TAG_BGCOLOR, couleur, TAGf);
}
/*
* %%Function: BackgroundHTML
*/
void BackgroundHTML(char * image, FILE * out)
{
FILE * sortie = (FILE *)0;
if(!(sortie = out))
#ifdef UNIX_SRC
sortie = stdout;
#else
return;
#endif
fprintf(sortie, "%s\n%s\"%s\"%s\n",
TAG_BODY, TAG_BACKGROUND, image, TAGf);
}
/*
* %%Function: CelluleColHTML
*
* Envoie sur le file pointeur une cellule de tableau avec un
* positionnment sur le nombre de colone.
*/
void CelluleColHTML(char * cellule, FILE * out, int nbcol)
{
FILE * sortie = (FILE *)0;
if(!(sortie = out))
#ifdef UNIX_SRC
sortie = stdout;
#else
return;
#endif
if(cellule)
{
fprintf(sortie, "%s%d%s\n%s\n%s\n",
TAG_TD_COLSPAN, nbcol, TAGf, cellule, TAGf_TD);
}
}
/*
* %%Function: CelluleHTML
*
* Envoie sur le file pointeur une cellule de tableau.
*/
void CelluleHTML(char * cellule, FILE * out)
{
FILE * sortie = (FILE *)0;
if(!(sortie = out))
#ifdef UNIX_SRC
sortie = stdout;
#else
return;
#endif
if(cellule)
{
fprintf(sortie, "%s\n%s\n%s\n", TAG_TD, cellule, TAGf_TD);
}
}
/*
* %%Function: CelluleCenterHTML
*
* Envoie sur le file pointeur une cellule centree de tableau.
*/
void CelluleCenterHTML(char * cellule, FILE * out)
{
FILE * sortie = (FILE *)0;
if(!(sortie = out))
#ifdef UNIX_SRC
sortie = stdout;
#else
return;
#endif
if(cellule)
{
fprintf(sortie, "%s\n%s\n%s\n", TAG_TD_CENTER, cellule, TAGf_TD);
}
}
/* -------------------------------------------------------------------------- */
/*
* %%Function: GetFontSize
*
* renvoie un debut de FONT SIZE alloue.
*/
char * GetFontSize(int taille)
{
switch(taille)
{
case 0:
case 1:
case 2:
break;
case 3:
case 4:
sprintf(StringTmp, "\n%s\n", TAG_FONT1);
return StringTmp;
break;
case 5:
case 6:
case 7:
case 8:
sprintf(StringTmp, "\n%s\n", TAG_FONT2);
return StringTmp;
break;
case 9:
sprintf(StringTmp, "\n%s\n", TAG_FONT3);
return StringTmp;
break;
default:
break;
}
}
/*
* %%Function: GetTableHTML
*
* renvoie un debut de tableau alloue.
*/
char * GetTableHTML(void)
{
sprintf(StringTmp, "\n%s\n", TAG_TABLE_BWIDTH);
return StringTmp;
}
/*
* %%Function: GetImgSrcHTML
*
* Renvoie le code HTML correspondant a une reference image.
*/
char * GetImgSrcHTML(char * chaine)
{
if(chaine)
{
sprintf(StringTmp, "%s\"%s\">", TAG_IMG_SRC, chaine);
return StringTmp;
}
return (char *)0;
}
/*
* %%Function: GetANameHTML
*
* Renvoie le code HTML correspondant a une reference interne arrivee.
*/
char * GetANameHTML(char * chaine)
{
if(chaine)
{
if (strlen(chaine) > 0)
{
sprintf(StringTmp, "%s\"%s\">%s", TAG_ANAME, libDelQuote(chaine), chaine);
return StringTmp;
}
}
return (char *)0;
}
/*
* %%Function: GetANameHTML2
*
* Renvoie le code HTML correspondant a une reference interne arrivee.
*/
char * GetANameHTML2(char * chaine)
{
if(chaine)
{
if (strlen(chaine) > 0)
{
sprintf(StringTmp, "%s\"%s\">", TAG_ANAME, libDelQuote(chaine));
return StringTmp;
}
}
return (char *)0;
}
/*
* %%Function: GetAHNameHTML
*
* Renvoie le code HTML correspondant a une reference depart pour NAME.
*/
char * GetAHNameHTML(char * chaine)
{
if(chaine)
{
if (strlen(chaine) > 0)
{
sprintf(StringTmp, "%s\"#%s\">%s%s", TAG_HREF, libDelQuote(chaine), chaine, TAGf_HREF);
return StringTmp;
}
}
return (char *)0;
}
/*
* %%Function: GetAHNameHTML2
*
* Renvoie le code HTML correspondant a une reference depart pour NAME.
*/
char * GetAHNameHTML2(char * dest, char * chaine)
{
if(chaine)
{
if (strlen(chaine) > 0)
{
sprintf(StringTmp, "%s\"#%s\">%s%s", TAG_HREF, dest, chaine, TAGf_HREF);
return StringTmp;
}
}
return (char *)0;
}
/*
* %%Function: GetAHNameTargetHTML
*
* Renvoie le code HTML correspondant a une reference depart pour NAME dans une frame cible.
*/
char * GetAHNameTargetHTML(char * fichier, char * target, char * chaine)
{
if(chaine)
{
if (strlen(chaine) > 0)
{
sprintf(StringTmp, "%s\"%s#%s\" TARGET=%s>%s%s", TAG_HREF, fichier, libDelQuote(chaine), target, chaine, TAGf_HREF);
return StringTmp;
}
}
return (char *)0;
}
/*
* %%Function: GetHrefHTML
*
* Renvoie le code HTML correspondant a une reference externe au fichier.
*/
char * GetHrefHTML(char * ref, char * chaine)
{
if(chaine && ref)
{
if (strlen(chaine) > 0 && strlen(ref) > 0)
{
sprintf(StringTmp, "%s\"%s\">%s%s", TAG_HREF, ref, chaine, TAGf_HREF);
return StringTmp;
}
else
{
if (strlen(chaine) > 0)
{
sprintf(StringTmp, "%s", chaine);
return StringTmp;
}
}
}
return (char *)0;
}
/*
* %%Function: GetHrefHTML2
*
* Renvoie le code HTML correspondant a une reference externe au fichier.
*/
char * GetHrefHTML2(char * ref, char * chaine)
{
if(chaine && ref)
{
if (strlen(chaine) > 0 && strlen(ref) > 0)
{
sprintf(StringTmp, "%s\"%s\" TARGET=_top>%s%s", TAG_HREF, ref, chaine, TAGf_HREF);
return StringTmp;
}
else
{
if (strlen(chaine) > 0)
{
sprintf(StringTmp, "%s", chaine);
return StringTmp;
}
}
}
return (char *)0;
}
/*
* %%Function: GetNiveauHTML
*
* Renvoie le code HTML correspondant a un niveau.
*/
char * GetNiveauHTML(int niveau)
{
switch(niveau)
{
case 0:
case 1:
case 41:
return TAG_H1;
case 2:
case 42:
return TAG_H2;
case 3:
case 43:
return TAG_H3;
case 4:
case 44:
return TAG_H4;
case 5:
case 45:
return TAG_H5;
}
return (char *)0;
}
/*
* %%Function: GetNiveauHTMLf
*
* Renvoie le code HTML (fermant) correspondant a un niveau.
*/
char * GetNiveauHTMLf(int niveau)
{
switch(niveau)
{
case 0:
case 1:
case 41:
return TAGf_H1;
case 2:
case 42:
return TAGf_H2;
case 3:
case 43:
return TAGf_H3;
case 4:
case 44:
return TAGf_H4;
case 5:
case 45:
return TAGf_H5;
}
return (char *)0;
}
/* -------------------------------------------------------------------------- */
/*
* %%Function: TokenToHTML
*
* Renvoie le code HTML correspondant a un token.
*/
char * TokenToHTML(char * token)
{
register int i = 0;
if(token)
{
while(tokenTag[i].token)
{
if(strcmp(tokenTag[i++].token, token) == 0)
return tokenTag[--i].tagHTML;
}
}
return (char *)0;
}
/*
* %%Function: HTMLToToken
*
* Renvoie le token correspondant a un code HTML.
*/
char * HTMLToToken(char * html)
{
register int i = 0;
if(html)
{
while(tokenTag[i].tagHTML)
{
if(strcmp(tokenTag[i++].tagHTML, html) == 0)
return tokenTag[--i].token;
}
}
return (char *)0;
}
/* ------------------------------------------------------------------------- */
/*
* %%Function: HexaToToken
*
* Renvoie le token correspondant au code Hexa.
*/
char * HexaToToken(char * hexa)
{
register int i = 0;
if(hexa)
{
while(ansiMapG[i].hexa)
{
if(strcmp(ansiMapG[i++].hexa, hexa) == 0)
{
return ansiMapG[i-1].token;
}
}
i = 0;
while(ansiMacG[i].hexa)
{
if(strcmp(ansiMacG[i++].hexa, hexa) == 0)
{
return ansiMacG[i-1].token;
}
}
}
return (char *)0;
}
/*
* %%Function: TokenToHexa
*
* Renvoie le code hexa correspondant au token.
*/
char * TokenToHexa(char * token)
{
register int i = 0;
if(token)
{
while(ansiMapG[i].token)
{
if(strcmp(ansiMapG[i++].token, token) == 0)
{
return ansiMapG[i-1].hexa;
}
}
i = 0;
while(ansiMacG[i].token)
{
if(strcmp(ansiMacG[i++].token, token) == 0)
{
return ansiMacG[i-1].hexa;
}
}
}
return (char *)0;
}
/* ------------------------------------------------------------------------- */
/*
* %%Function: HTMLToHexa
*
* Renvoie le code hexa correspondant au code html.
*/
char * HTMLToHexa(char * html)
{
if(html)
{
return TokenToHexa(HTMLToToken(html));
}
return (char *)0;
}
/*
* %%Function: HexaToHTML
*
* Renvoie le code html correspondant au code Hexa.
*/
char * HexaToHTML(char * hexa)
{
if(hexa)
{
return TokenToHTML(HexaToToken(hexa));
}
return (char *)0;
}